/*
* Sun Public License Notice
*
* The contents of this file are subject to the Sun Public License
* Version 1.0 (the "License"). You may not use this file except in
* compliance with the License. A copy of the License is available at
* http://www.sun.com/
*
* The Original Code is NetBeans. The Initial Developer of the Original
* Code is Sun Microsystems, Inc. Portions Copyright 1997-2001 Sun
* Microsystems, Inc. All Rights Reserved.
*/
package org.netbeans.modules.corba.browser.ns;
import java.util.Vector;
import java.awt.datatransfer.StringSelection;
import org.openide.nodes.*;
import org.openide.util.actions.*;
import org.openide.util.*;
import org.openide.*;
import org.netbeans.modules.corba.*;
/*
* @author Karel Gardas
*/
public class CopyServerCode extends NodeAction {
public static final boolean DEBUG = false;
//public static final boolean DEBUG = true;
static final long serialVersionUID =5790749245670472327L;
public CopyServerCode () {
super ();
}
protected boolean enable (org.openide.nodes.Node[] nodes) {
if (nodes == null || nodes.length != 1)
return false;
return (nodes[0].getCookie (ContextNode.class) != null);
}
public String getName() {
return NbBundle.getBundle (ContextNode.class).getString ("CTL_CopyServerCode");
}
public HelpCtx getHelpCtx() {
return HelpCtx.DEFAULT_HELP; // [PENDING]
}
protected void performAction (final Node[] activatedNodes) {
if (DEBUG)
System.out.println ("CopyServerCode.java");
Vector names = new Vector ();
Node tmp_node = activatedNodes[0];
while (tmp_node.getParentNode () != null) {
ContextNode cn = (ContextNode)tmp_node.getCookie (ContextNode.class);
tmp_node = tmp_node.getParentNode ();
names.add (cn.getName ());
names.add (cn.getKind ());
}
String paste = new String (" String[] hierarchy_of_contexts = new String [] {");
for (int i=names.size () - 6; i>=0; i=i-2) {
paste = paste + "\"" + (String)names.elementAt (i) + "\"" + ", ";
paste = paste + "\"" + (String)names.elementAt (i+1) + "\"" + ", ";
}
if (paste.substring (paste.length () - 2, paste.length ()).equals (", "))
paste = paste.substring (0, paste.length () - 2);
paste = paste + "};\n";
// server name
paste = paste + " String[] name_of_server = new String [] {\"<name of server>\", ";
paste = paste + "\"<kind of server>\"};\n";
if (DEBUG)
System.out.println ("names: " + paste);
StringSelection ss = new StringSelection (paste);
TopManager.getDefault().getClipboard().setContents(ss, null);
}
}
/*
* $Log
* $
*/